package eureka.consumer.redissonlock.review.lockinter;

import java.util.concurrent.TimeUnit;

/**
 * @Author RenPu
 * @Date 2023/10/7 15:54
 * @Version 1.0
 * @Description:  分布式锁模板方法
 *
 **/
public interface DistributeLockTemplate {

    /**
     * 默认超时时间，单位获取分布式锁得方法
     * @param <T>
     * @return
     */
    <T> T getLock(LockCallback<T> lockCallbackint);


    /**
     * 自定义超时时间以及单位，获取分布式锁得方法
     * @param timeOut
     * @param timeUnit
     * @param <T>
     * @return
     */
    <T> T getLock(LockCallback<T> lockCallbackint ,long timeOut, TimeUnit timeUnit);


}
